# 周林浙
# 时间：2025/3/14 11:07
# Python文件完成作业，编写一个用户注册小程序，要求用户在控制台输入“ID”、“EMAIL地址”、“身份证号”、“姓名”。要求：
# ID长度不能超过8位，且只能由数字、字母、下划线组成
# EMAIL地址要求符合基本电子邮件格式
# 身份证号要求符合基本格式
# 姓名只能中文且不能超过4位
# 以上操作均不能用正则表达式
# 验证合法后输出用户的所有信息，要求在信息中体现出性别def is_valid_id(user_id):

def is_valid_id(user_id):
    if len(user_id) > 8:
        return False
    for char in user_id:
        if not (char.isdigit() or char.isalpha() or char == '_'):
            return False
    return True

def is_valid_email(email):
    if '@' not in email or '.' not in email:
        return False
    local_part, domain_part = email.split('@')
    if not local_part or not domain_part:
        return False
    if '.' not in domain_part:
        return False
    return True

def is_valid_id_number(id_number):
    if len(id_number) != 18:
        return False
    if not id_number[:-1].isdigit():
        return False
    return True

def is_valid_name(name):
    if len(name) > 4:
        return False
    for char in name:
        if not '\u4e00' <= char <= '\u9fff':
            return False
    return True

def get_gender_from_id_number(id_number):
    gender_digit = int(id_number[16])
    return '男' if gender_digit % 2 == 1 else '女'

def main():
    user_id = input("请输入ID（长度不超过8位，由数字、字母、下划线组成）：")
    if not is_valid_id(user_id):
        print("ID格式不正确，请重新输入。")
        return

    email = input("请输入EMAIL地址：")
    if not is_valid_email(email):
        print("EMAIL格式不正确，请重新输入。")
        return

    id_number = input("请输入身份证号：")
    if not is_valid_id_number(id_number):
        print("身份证号格式不正确，请重新输入。")
        return

    name = input("请输入姓名（中文，不超过4位）：")
    if not is_valid_name(name):
        print("姓名格式不正确，请重新输入。")
        return

    gender = get_gender_from_id_number(id_number)

    print("\n用户信息：")
    print(f"ID: {user_id}")
    print(f"EMAIL: {email}")
    print(f"身份证号: {id_number}")
    print(f"姓名: {name}")
    print(f"性别: {gender}")

if __name__ == "__main__":
    main()
